package com.klw.business.service;

import java.math.BigDecimal;
import java.util.List;

import com.klw.business.domain.KlmBatchModel;
import com.klw.business.domain.KlwScores;

/**
 * 学生成绩Service接口
 * 
 * @author klw
 * @date 2025-08-24
 */
public interface IKlwScoresService 
{
    /**
     * 查询学生成绩
     * 
     * @param scoreId 学生成绩主键
     * @return 学生成绩
     */
    public KlwScores selectKlwScoresByScoreId(Long scoreId);

    /**
     * 查询学生成绩列表
     * 
     * @param klwScores 学生成绩
     * @return 学生成绩集合
     */
    public List<KlwScores> selectKlwScoresList(KlwScores klwScores);

    /**
     * 新增学生成绩
     * 
     * @param klwScores 学生成绩
     * @return 结果
     */
    public int insertKlwScores(KlwScores klwScores);

    /**
     * 修改学生成绩
     * 
     * @param klwScores 学生成绩
     * @return 结果
     */
    public int updateKlwScores(KlwScores klwScores);

    /**
     * 批量删除学生成绩
     * 
     * @param scoreIds 需要删除的学生成绩主键集合
     * @return 结果
     */
    public int deleteKlwScoresByScoreIds(Long[] scoreIds);

    /**
     * 删除学生成绩信息
     * 
     * @param scoreId 学生成绩主键
     * @return 结果
     */
    public int deleteKlwScoresByScoreId(Long scoreId);

    /**
     * 获取学生指定学期的平均成绩
     * @param klmBatchModel
     * @return
     */
    public BigDecimal selectAvgScoreByParam(KlmBatchModel klmBatchModel);

    /**
     * 获取学生指定学期挂科门数
     * @param klmBatchModel
     * @return
     */
    public Long selectFailCountByParam(KlmBatchModel klmBatchModel);
}
